inline fragment
from fragment (graphql)
gpt-5.icon
Inline Fragment とは
GraphQL ではクエリで取得したいデータの形を自由に指定できますが、スキーマの型が 複数の可能性を持つ場合(例: Union型 (graphql)やInterface型 (graphql))、返ってくる実際の型に応じてフィールドを変えたいことがあります。
そのときに使うのが inline fragment です。
通常の fragment (graphql) は fragment Foo on Type { ... } と定義して再利用できますが、inline fragment はクエリの中に直接 fragment を書き込む形です。
🔹 基本構文
code:graphql(js)
{
search(keyword: "engineer") {
... on User {
id
username
}
... on Company {
id
companyName
}
}
}
解説
search フィールドが User | Company のように Union 型 だと仮定します。
... on User { ... } → 結果が User 型ならこのフィールドを返す
... on Company { ... } → 結果が Company 型ならこのフィールドを返す
利用シーン
1. Union 型のレスポンス
検索結果が「ユーザー or 会社」のように複数型あり得るケース
2. Interface 型のレスポンス
共通フィールドはそのまま取得しつつ、型ごとのフィールドを取得したいとき
3. 条件付きで型を絞りたいとき
サーバーから返ってくるデータの実体型によってフィールドを切り替える